#ifndef V4L2API_H
#define V4L2API_H


extern "C"{
#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
 #include <string.h>
 #include <sys/mman.h>
#include <unistd.h>

#include <linux/videodev2.h> //摄像头框架v4l2的头文件

};


class V4l2Api
{
public:
    V4l2Api(const char*deviceName);

    void start();
    void stop();

    void destory();

    void get_frame(char*buffer,int *size);//采集数据
    //将采集好的yuyv格式 转换成  rgb
    bool yuv422torgb24(unsigned char *buffer, unsigned char *rgbdata, int w, int h);
private:
    int fd;
    unsigned char* mptr[4]; //保存映射后用户空间的首地址，四个缓冲队列空间
    unsigned int size[4];
};

#endif // V4L2API_H
